Mybatis 基础
Mybatis 缓存
Mybatis 插件
Mybatis 架构原理
架构
Mybatis 架构由接口层、数据处理层、框架支撑层组成:
接口层提供增删改查以及配置信息维护的接口,提供两种调用方法:1.基于StatementID 2.基于Mapper接口。
数据处理层负责具体的参数映射( ParameterHandler )、SQL 解析( SqlSource )、SQL 执行( Excutor )、结果集映射处理( ResultSetHandler )。
框架支撑曾提供最基础的功能支撑,包括连接管理、事务管理、配置加载、缓存管理等组件。
主要构件及层次结构
主要构件
构件 | 描述 |
---|---|
SqlSession | 作为 MyBatis ⼯作的主要顶层 API,表示和数据库交互的会话,完成数据库增删改查功能 |
Executor | MyBatis 执⾏器,是 MyBatis 调度的核⼼,负责 SQL 语句的⽣成和 查询缓存 的维护 |
StatementHandler | 封装了JDBC Statement操作,如设置参数、将 Statement 结果集转换成List集合等。 |
ParameterHandler | 参数映射处理,负责将⽤户传递的参数转换成 JDBC Statement 所需要的参数 |
ResultSetHandler | 结果集映射处理,负责将 JDBC 返回的 ResultSet 结果集对象转换成 List 类型的集合 |
TypeHandler | 负责java数据类型和jdbc数据类型之间的映射和转换 |
MappedStatement | MappedStatement维护了⼀条SQL信息封装 |
SqlSource | 负责根据⽤户传递的 parameterObject,动态地⽣成SQL语句,将信息封装到 BoundSql 对象中 |
BoundSql | 表示动态⽣成的SQL语句以及相应的参数信息 |
层次结构
1 | -> SqlSession -> SqlSession |